Resource Bundle ব্যবহার করে ভাষা পরিবর্তন

Web Development - অ্যাপাচি ট্যাপেস্ট্রি (Apache Tapestry) - Tapestry এর Localization এবং Internationalization |

Apache Tapestry Localization (লোকালাইজেশন) এবং Internationalization (আইন্টারন্যাশনালাইজেশন) এর মাধ্যমে আপনার অ্যাপ্লিকেশনকে একাধিক ভাষায় সমর্থন দেয়ার ব্যবস্থা সহজে করতে পারে। এটি বিশেষভাবে উপকারী যখন আপনার অ্যাপ্লিকেশনটি বিভিন্ন অঞ্চলে ব্যবহারকারীদের জন্য উপলব্ধ হবে এবং বিভিন্ন ভাষায় কনটেন্ট প্রদর্শন করতে হবে।

Tapestry তে Resource Bundles ব্যবহার করে ভাষা পরিবর্তন (language switching) করা যায়, যাতে ব্যবহারকারীরা তাদের পছন্দের ভাষায় অ্যাপ্লিকেশনটি ব্যবহার করতে পারেন।

এই টিউটোরিয়ালে, আমরা দেখব কীভাবে Tapestry তে Resource Bundle ব্যবহার করে ভাষা পরিবর্তন করা যায়।


Resource Bundle কি?

Resource Bundles হল Java অ্যাপ্লিকেশনগুলির জন্য একটি স্ট্যান্ডার্ড কনফিগারেশন ফাইল যা ভাষা নির্ধারণকারী স্ট্রিং মান এবং লেবেল রাখে। এগুলি সাধারণত .properties ফাইলের মধ্যে থাকে, এবং প্রতিটি ভাষার জন্য আলাদা ফাইল ব্যবহার করা হয়।

উদাহরণ:

  • messages_en.properties — ইংরেজি ভাষার জন্য স্ট্রিং মান।
  • messages_fr.properties — ফ্রেঞ্চ ভাষার জন্য স্ট্রিং মান।

ধাপ ১: Resource Bundle তৈরি করা

প্রথমে আপনাকে একটি Resource Bundle তৈরি করতে হবে যেখানে আপনি আপনার অ্যাপ্লিকেশনের সব ভাষার স্ট্রিং সংরক্ষণ করবেন।

উদাহরণ: English এবং Bengali জন্য Resource Bundle

  1. messages_en.properties (ইংরেজি ভাষার জন্য):
greeting=Welcome
loginMessage=Please log in to continue
  1. messages_bn.properties (বাংলা ভাষার জন্য):
greeting=স্বাগতম
loginMessage=কন্টিনিউ করতে লগইন করুন

এই properties ফাইল দুটি Tapestry-এর resource bundle হিসেবে কাজ করবে এবং অ্যাপ্লিকেশন ভাষার উপর ভিত্তি করে স্ট্রিং মান প্রদান করবে।


ধাপ ২: Tapestry-তে Resource Bundle কনফিগারেশন

Tapestry এ ভাষার পরিবর্তন করতে এবং Resource Bundle ব্যবহার করতে আপনাকে @Messages অ্যানোটেশন ব্যবহার করতে হবে। এই অ্যানোটেশনটি আপনাকে কনফিগারেশন ফাইলের স্ট্রিং মানগুলি অ্যাক্সেস করতে সাহায্য করবে।

উদাহরণ: পেজ ক্লাসে Resource Bundle ব্যবহার

  1. Home.java (পেজ ক্লাস):
package com.example.pages;

import org.apache.tapestry5.annotations.Messages;
import org.apache.tapestry5.annotations.Property;

public class Home {

    @Messages
    private ResourceBundle messages;  // Inject the resource bundle

    @Property
    private String greetingMessage;

    public void setupRender() {
        greetingMessage = messages.get("greeting");  // Fetch greeting message from resource bundle
    }
}
  • @Messages: এই অ্যানোটেশনটি Tapestry কে জানায় যে এটি Resource Bundle থেকে স্ট্রিং মানগুলি ইনজেক্ট করবে।
  • messages.get("greeting"): এখানে greeting কী ব্যবহার করে ইংরেজি বা বাংলা ভাষায় স্ট্রিং মান পাওয়া যাবে।
  1. Home.tml (পেজ টেমপ্লেট):
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>Home</title>
    </head>
    <body>
        <h1><t:property value="greetingMessage" /></h1> <!-- Display greeting message -->
    </body>
</html>

এখানে:

  • <t:property value="greetingMessage" />: এটি পেজের মধ্যে greetingMessage প্রপার্টি প্রদর্শন করবে, যা Resource Bundle থেকে পাওয়া মান।

ধাপ ৩: ভাষা পরিবর্তন (Language Switching)

Tapestry তে ভাষা পরিবর্তন করতে Locale ব্যবহার করা হয়। আপনার পেজ বা কম্পোনেন্টে ব্যবহারকারী যখন ভাষা পরিবর্তন করবে, তখন এটি সেই ভাষার জন্য নির্ধারিত Resource Bundle ব্যবহার করবে।

উদাহরণ: ভাষা পরিবর্তনের জন্য পেজ কনফিগারেশন

  1. LanguageSwitcher.java (ভাষা পরিবর্তন কম্পোনেন্ট):
package com.example.components;

import org.apache.tapestry5.annotations.Property;
import org.apache.tapestry5.services.ComponentClassTransformWorker;
import org.apache.tapestry5.ioc.annotations.Inject;
import org.apache.tapestry5.ioc.annotations.UsesJavaScript;

public class LanguageSwitcher {

    @Inject
    private org.apache.tapestry5.services.LocaleChanger localeChanger;

    @Property
    private String selectedLanguage;

    public void onChangeLanguage() {
        if ("en".equals(selectedLanguage)) {
            localeChanger.changeLocale("en");
        } else if ("bn".equals(selectedLanguage)) {
            localeChanger.changeLocale("bn");
        }
    }
}
  • localeChanger.changeLocale(): এই মেথডটি Tapestry তে ভাষা পরিবর্তনের জন্য ব্যবহৃত হয়।
  1. LanguageSwitcher.tml (কম্পোনেন্ট টেমপ্লেট):
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_3.xsd">
    <head>
        <title>Language Switcher</title>
    </head>
    <body>
        <form>
            <t:select t:id="languageSelect" value="selectedLanguage">
                <t:option value="en">English</t:option>
                <t:option value="bn">বাংলা</t:option>
            </t:select>
            <t:button t:id="switchButton" value="Switch Language" />
        </form>
    </body>
</html>
  • <t:select>: ড্রপডাউন মেনু তৈরি করে যাতে ব্যবহারকারী ইংরেজি বা বাংলা ভাষা নির্বাচন করতে পারেন।
  • <t:button>: একটি বাটন যা ভাষা পরিবর্তন করার জন্য ব্যবহার করা হবে।

ধাপ ৪: ভাষার পরিবর্তন সঞ্চালন

Tapestry এর LocaleChanger সার্ভিসের মাধ্যমে ব্যবহারকারী যখন একটি ভাষা নির্বাচন করবে, তখন তা স্বয়ংক্রিয়ভাবে সিস্টেমের Locale পরিবর্তন করবে এবং পেজে নতুন ভাষায় কনটেন্ট প্রদর্শিত হবে।


সারাংশ

Tapestry-তে Multi-language Support এবং Resource Bundle ব্যবহার করে ভাষা পরিবর্তন একটি শক্তিশালী বৈশিষ্ট্য। আপনি .properties ফাইল ব্যবহার করে একাধিক ভাষার জন্য স্ট্রিং মান সংরক্ষণ করতে পারেন এবং Tapestry এর @Messages অ্যানোটেশন এবং LocaleChanger সার্ভিস ব্যবহার করে ভাষা পরিবর্তন করতে পারেন। এটি আপনার অ্যাপ্লিকেশনকে বিভিন্ন ভাষায় সমর্থন প্রদান করে, যা আন্তর্জাতিকীকরণ (Internationalization) এবং লোকালাইজেশন (Localization) প্রক্রিয়াকে সহজ করে তোলে।

Content added By
Promotion